# Creating a Project Snapshot

Creates a Project Snapshot. You must have the Edit Financials project permission or higher to create a project snapshot.
This endpoint has its own rate limit. See the [Knowledge Base](https://knowledge.kantata.com/hc/en-us/articles/9698066628123) for more information.
This endpoint returns structured Project Snapshots objects.
As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array
and will be indexed by ID in the `project_snapshots` top-level JSON key.
Please see our [Response Format](#section/Response-Format) section for more information.

Endpoint: POST /project_snapshots
Version: 1.0.0

## Query parameters:

  - `include` (string)
    Any of the below associations can be included in your request by providing the `include` param, e.g. `include=association1,association2`.
- `project_snapshot_assignments` (Project::Snapshots::Models::ProjectSnapshotAssignment) - Retrieves task assignments saved in snapshots. The response will include `project_snapshot_assignment_ids`, which references the data in the `project_snapshot_assignments` top-level key.
- `project_snapshot_custom_field_values` (Project::Snapshots::Models::ProjectSnapshotCustomFieldValue) - Retrieves project custom fields saved in snapshots. The response will include `project_snapshot_custom_field_value_ids`, which references the data in the `project_snapshot_custom_field_values` top-level key.
- `project_snapshot_resources` (Project::Snapshots::Models::ProjectSnapshotResource) - Retrieves the resources saved in snapshots. The response will include `project_snapshot_resource_ids`, which references the data in the `project_snapshot_resources` top-level key.
- `project_snapshot_task_custom_field_values` (Project::Snapshots::Models::ProjectSnapshotCustomFieldValue) - Retrieves task custom fields saved in snapshots. The response will include `project_snapshot_task_custom_field_value_ids`, which references the data in the `project_snapshot_custom_field_values` top-level key.
- `project_snapshot_tasks` (Project::Snapshots::Models::ProjectSnapshotTask) - Retrieves the tasks saved in snapshots. The response will include `project_snapshot_task_ids`, which references the data in the `project_snapshot_tasks` top-level key.

## Request fields (application/json):

  - `project_snapshot` (object)

  - `project_snapshot.workspace_id` (integer, required)
    The ID of the workspace to take a snapshot of.

  - `project_snapshot.title` (string)
    The title of the snapshot.

  - `project_snapshot.description` (string)
    The description of the snapshot.

  - `project_snapshot.replace_baseline` (boolean)
    Whether the snapshot should be set as the workspace's baseline.

## Response 200 fields (application/json):

  - `count` (integer)

  - `meta` (object)

  - `meta.count` (integer)

  - `meta.page_count` (integer)

  - `meta.page_number` (integer)

  - `meta.page_size` (integer)

  - `results` (array)

  - `results.key` (string)

  - `results.id` (string)

## Response 400 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 401 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 403 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 404 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 422 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 503 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

